home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / vb_ap21 / vbapi.frm (.txt) < prev    next >
Encoding:
Visual Basic Form  |  1995-09-06  |  5.7 KB  |  180 lines

  1. VERSION 2.00
  2. Begin Form VBAPI 
  3.    BackColor       =   &H00C0C0C0&
  4.    BorderStyle     =   1  'Fixed Single
  5.    Caption         =   "VB API Help"
  6.    ClientHeight    =   330
  7.    ClientLeft      =   2715
  8.    ClientTop       =   2385
  9.    ClientWidth     =   1560
  10.    ControlBox      =   0   'False
  11.    Height          =   735
  12.    Icon            =   VBAPI.FRX:0000
  13.    Left            =   2655
  14.    LinkTopic       =   "Form1"
  15.    MaxButton       =   0   'False
  16.    MinButton       =   0   'False
  17.    ScaleHeight     =   330
  18.    ScaleWidth      =   1560
  19.    Top             =   2040
  20.    Width           =   1680
  21. DefInt A-Z
  22. Const TRUE = -1, FALSE = 0
  23. Const HELP_QUIT = 2
  24. Const HELP_INDEX = 3
  25. Const LEFT_BUTTON = 1
  26. Const RIGHT_BUTTON = 2
  27. Const SHIFT_MASK = 1
  28. Const CTRL_MASK = 2
  29. Const GCW_HMODULE = (-16)
  30. Dim XOff, YOff, Hold
  31. Dim Mouse As POINTAPI
  32. Declare Function WinHelp Lib "User" (ByVal hWnd As Integer, ByVal lpHelpFile As String, ByVal wCommand As Integer, dwData As Any) As Integer
  33. Declare Function GetModuleFileName Lib "Kernel" (ByVal hModule As Integer, ByVal lpFileName As String, ByVal nSize As Integer) As Integer
  34. Declare Function GetClassWord Lib "User" (ByVal hWnd As Integer, ByVal nIndex As Integer) As Integer
  35. Declare Function GetPrivateProfileInt Lib "Kernel" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal nDefault As Integer, ByVal lpFileName As String) As Integer
  36. Declare Function WritePrivateProfileString Lib "Kernel" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpString As Any, ByVal lplFileName As String) As Integer
  37. Declare Function SetCapture Lib "User" (ByVal hWnd As Integer) As Integer
  38. Declare Sub ReleaseCapture Lib "User" ()
  39. Declare Sub GetCursorPos Lib "User" (lpPoint As POINTAPI)
  40. Sub Form_Load ()
  41.   Select Case WindowState
  42.     Case 0
  43.       Caption = ""
  44.     Case 1
  45.       Caption = "VB API Help"
  46.   End Select
  47.   PutWindow
  48.   VBAPI.Refresh
  49. End Sub
  50. Sub Form_MouseDown (Button As Integer, Shift As Integer, X As Single, Y As Single)
  51.   RButt = (Button And RIGHT_BUTTON) > 0
  52.   If RButt Then
  53.     Z = SetCapture(VBAPI.hWnd)
  54.     GetCursorPos Mouse
  55.     XOff = (Mouse.X * 15) - VBAPI.Left
  56.     YOff = (Mouse.Y * 15) - VBAPI.Top
  57.     MousePointer = 5
  58.   End If
  59. End Sub
  60. Sub Form_MouseMove (Button As Integer, Shift As Integer, X As Single, Y As Single)
  61.   RButt = (Button And RIGHT_BUTTON) > 0
  62.   If RButt Then
  63.     GetCursorPos Mouse
  64.     XPo = Signed%((Mouse.X * 15) - XOff)
  65.     YPo = Signed%((Mouse.Y * 15) - YOff)
  66.     Move XPo, YPo
  67.   End If
  68. End Sub
  69. Sub Form_MouseUp (Button As Integer, Shift As Integer, X As Single, Y As Single)
  70.   RButt = (Button And RIGHT_BUTTON) > 0
  71.   LButt = (Button And LEFT_BUTTON) > 0
  72.   Ctrl = (Shift And CTRL_MASK) > 0
  73.   Shft = (Shift And SHIFT_MASK) > 0
  74.   If RButt Then
  75.     GetCursorPos Mouse
  76.     XPo = Signed%((Mouse.X * 15) - XOff)
  77.     YPo = Signed%((Mouse.Y * 15) - YOff)
  78.     Move XPo, YPo
  79.     MousePointer = 0
  80.     ReleaseCapture
  81.   ElseIf Ctrl And LButt Then
  82.     Unload VBAPI
  83.   ElseIf Shft And LButt Then
  84.     SavePosition
  85.     WindowState = 1
  86.   ElseIf LButt Then
  87.     GetHelp HELP_INDEX
  88.   End If
  89. End Sub
  90. Sub Form_Paint ()
  91.   Tp = ScaleTop
  92.   Lf = ScaleLeft + 7
  93.   Bt = ScaleHeight - 8
  94.   Rt = ScaleWidth - 15
  95.   Line (Lf, Bt)-(Rt, Bt), &H808080
  96.   Line (Rt, Tp)-(Rt, Bt), &H808080
  97.   Line (Lf + 15, Tp + 15)-(Rt - 15, Tp + 15), &HFFFFFF
  98.   Line (Lf + 15, Tp + 15)-(Lf + 15, Bt - 15), &HFFFFFF
  99.   Line (Lf + 15, Bt - 15)-(Rt - 15, Bt - 15), &H808080
  100.   Line (Rt - 15, Tp + 15)-(Rt - 15, Bt - 15), &H808080
  101.   Lab$ = "VB API Help"
  102.   X = (Width - TextWidth(Lab$)) \ 2
  103.   Y = (Height - TextHeight(Lab$)) \ 2
  104.   Col& = ForeColor
  105.   ForeColor = &HFFFFFF
  106.   CurrentY = Y + 15
  107.   CurrentX = X + 15
  108.   Print Lab$;
  109.   ForeColor = Col&
  110.   CurrentY = Y
  111.   CurrentX = X
  112.   Print Lab$;
  113. End Sub
  114. Sub Form_Resize ()
  115.   Select Case WindowState
  116.     Case 0
  117.       If Hold Then Exit Sub
  118.       If VBAPI.Caption <> "" Then VBAPI.Caption = ""
  119.       PutWindow
  120.       VBAPI.Refresh
  121.     Case 1
  122.       VBAPI.Caption = "VBAPI Help"
  123.   End Select
  124. End Sub
  125. Sub Form_Unload (Cancel As Integer)
  126.   GetHelp HELP_QUIT
  127.   SavePosition
  128. End Sub
  129. Sub GetHelp (HlpType)
  130.   Hlp$ = LTrim$(RTrim$(HomePath$())) + "vbapi.hlp"
  131.   Select Case HlpType
  132.     Case HELP_INDEX
  133.       X = WinHelp(VBAPI.hWnd, Hlp$, HELP_INDEX, ByVal 0&)
  134.       If X = False Then
  135.     NL$ = Chr$(13) + Chr$(10)
  136.     Msg$ = "Unable to access help file." + NL$ + NL$
  137.     Msg$ = Msg$ + "Please make sure the help" + NL$
  138.     Msg$ = Msg$ + "file (VBAPI.HLP) is in" + NL$
  139.     Msg$ = Msg$ + "the same directory as the" + NL$
  140.     Msg$ = Msg$ + "executable (VBAPI.EXE)."
  141.     Tit$ = "VB API Help"
  142.     MsgBox Msg$, 48, Tit$
  143.       End If
  144.     Case HELP_QUIT
  145.       Y = WinHelp(VBAPI.hWnd, "", HELP_QUIT, ByVal 0&)
  146.   End Select
  147. End Sub
  148. Function HomePath$ ()
  149.   Hlp$ = String$(255, 0)
  150.   hMod = GetClassWord(VBAPI.hWnd, GCW_HMODULE)
  151.   FLn& = GetModuleFileName(hMod, Hlp$, 255)
  152.   Hlp$ = Left$(LTrim$(RTrim$(Hlp$)), FLn& - 9)
  153.   HomePath$ = Hlp$
  154.   Hlp$ = ""
  155. End Function
  156. Sub PutWindow ()
  157.   Hold = True
  158.   Pf$ = LTrim$(RTrim$(HomePath$())) + "vbapi.ini"
  159.   Lf = Screen.Width - 1410
  160.   Tp = Screen.Height - 330
  161.   L = GetPrivateProfileInt("Position", "Left", Lf, Pf$)
  162.   T = GetPrivateProfileInt("Position", "Top", Tp, Pf$)
  163.   If L > Lf Then L = Lf
  164.   If T > Tp Then T = Tp
  165.   Move L, T, 1410, 330
  166.   Hold = False
  167. End Sub
  168. Sub SavePosition ()
  169.   Fl$ = LTrim$(RTrim$(HomePath$())) + "vbapi.ini"
  170.   Uh = WritePrivateProfileString("Position", "Top", LTrim$(RTrim$(Str$(VBAPI.Top))), Fl$)
  171.   Uh = WritePrivateProfileString("Position", "Left", LTrim$(RTrim$(Str$(VBAPI.Left))), Fl$)
  172. End Sub
  173. Static Function Signed% (XNum&)
  174.     If XNum& > 32767 Then
  175.        Signed% = XNum& - 65536
  176.     Else
  177.        Signed% = XNum&
  178.     End If
  179. End Function
  180.